使用窗体指定查询的条件

您所在的位置:网站首页 access 窗体查询 使用窗体指定查询的条件

使用窗体指定查询的条件

2023-05-01 03:07| 来源: 网络整理| 查看: 265

如何在 Microsoft Access 中通过表单 (QBF) 技术使用查询 项目 03/18/2023 适用于: Microsoft Office Access 2007

原始 KB 编号: 304428

注意

需要具备基本的宏、编码和互操作性技能。 本文仅适用于 Microsoft Access 数据库(.accdb 和 .mdb)。

摘要

本文介绍如何使用表单指定查询的条件。 此技术通过表单 (QBF) 调用查询。

更多信息

在 QBF 技术中,创建一个在其中输入查询条件的窗体。 此窗体包含空白文本框。 每个文本框表示要查询的表中的字段。 仅在要为其指定搜索条件的文本框中创建条目。

QBF 窗体类似于数据条目窗体,其中包含与表中的字段匹配的字段。 包含名称、地址、城市、州和邮政编码字段的表可以具有具有相应字段的 QBF 窗体。 若要选择某些记录,可以在窗体中输入搜索条件的任何组合。 可以仅指定一个城市、一个城市和一个州、一个邮政编码或任何其他组合。 将忽略留空的字段。 单击窗体上的命令按钮时,Access 将运行使用窗体中的搜索条件的查询。

若要使用 QBF 技术,请执行以下步骤:

打开示例数据库 Northwind.mdb。

创建不基于任何表或查询的新窗体,并将其另存为QBF_Form。

在新窗体上,创建两个文本框和一个具有以下属性的命令按钮。然后,保存窗体:

Text box 1 ------------------ Name: WhatCustomer Text box 2 ------------------ Name: WhatEmployee Command button 1: ------------------ Caption: Search OnClick: QBF_Macro

创建以下新宏,然后将其另存为QBF_Macro:

Action: OpenQuery Query Name: QBF_Query View: Datasheet Data Mode: Edit

创建基于 Orders 表的以下新查询,然后将其另存为QBF_Query:

Field: CustomerID Sort: Ascending Criteria: Forms![QBF_Form]![WhatCustomer] Or Forms![QBF_Form]![WhatCustomer] Is Null Field: EmployeeID Sort: Ascending Criteria: Forms![QBF_Form]![WhatEmployee] Or Forms![QBF_Form]![WhatEmployee] Is Null NOTE: When you type the criteria, make sure that you type the entire criteria in a single Criteria field; do not split the criteria by placing the 'Or' section on a separate row. Field: OrderID Field: OrderDate

在窗体视图中打开QBF_Form。 输入以下条件组合。 在每个组合之后单击“搜索”:

Customer ID Employee ID Result ------------------------------------------------------- All 830 orders AROUT 13 orders AROUT 4 4 AROUT orders for employee 4 4 156 orders for employee 4

查看每个查询的结果集后,关闭“数据表”窗口。 然后,开始下一次搜索。 每次单击 “搜索 ”按钮时,QBF 查询中的参数都会根据在 QBF 查询表单上指定的搜索条件筛选数据。

有关 QBF 参数条件的说明

本文中的示例 QBF 查询将查询中的条件实现为

形式!FormName!ControlName或窗体!FormName!ControlName为 Null

筛选数据。 这些条件返回所有匹配的记录。 如果条件值为 null,则为指定字段返回所有记录。

可以指定以下任一替代条件以返回略有不同的结果。

注意

在以下示例条件中,下划线 (_) 用作行延续字符。 重新创建这些条件时,从行末尾删除下划线。

就像窗体一样!FormName!ControlName& “*” 或 _ Forms!FormName!ControlName为 Null

此 criteria 语句与上面的 QBF 示例相同,只不过可以使用通配符进行查询。 例如,如果使用此条件语句在字段中输入“Jo”,则查询将返回以“Jo”开头的字段中的每条记录。这包括约翰逊、琼斯、约翰娜等。

在窗体之间!FormName!StartDate 和 Forms!FormName!EndDate Or _ Forms!FormName!StartDate 为 Null

可以使用此条件语句在查询窗体上使用“开始日期”和“结束日期”文本框来查询日期字段。 返回其开始日期和结束日期介于查询窗体上指定的值之间的记录。 但是,如果省略窗体上的“开始日期”值,则查询将返回所有记录,而不考虑结束日期值。

就像窗体一样!FormName!ControlName& “*”或为 Null

此 criteria 语句返回与 null 条件和记录匹配的两个记录。 如果条件为 null,则返回所有记录。 请注意,星号 (*) 被视为参数,因为它是较大 Like 表达式的一部分。 由于星号是硬编码的条件值 (例如“*”) ,因此返回具有 null 值的记录。

就像 IIf (IsNull (窗体一样!FormName![ControlName]) , _ “*”,[Forms]![FormName]![ControlName])

此 criteria 语句返回与条件匹配的所有记录。 如果查询窗体中未指定任何条件,则返回 所有不 为 null 的记录。

IIf (IsNull (窗体!FormName![ControlName]) , _ [FieldName],[Forms]![FormName]![ControlName])

这会返回与条件匹配的所有记录。 如果查询窗体中未指定任何条件,则返回 所有不 为 null 的记录 (与上述示例中的结果相同) 。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3